from langchain.agents import tool

# 使用 `@tool` 装饰器标记为 LangChain 工具
@tool
def execute_python(code: str) -> str:
    """执行Python代码并返回结果。"""
    try:
        print("##执行代码:\n",code)
        # 在隔离的本地环境中执行代码
        local_vars = {} # 创建空的全局和局部变量空间
        exec(code, {}, local_vars)  #Python 中用于动态执行代码的函数调用形式

        # 从局部变量中提取 'result' 变量作为最终结果
        # 如果没有 'result' 变量，返回默认的"执行成功"消息
        result= local_vars.get('result', '执行成功')

        print("##执行结果:\n",result)
        return str(result)
    except Exception as e:
        return f"Error executing code: {str(e)}"

tools = [execute_python]